package tbk

import "commonUtils/utils"

type TBKManager struct {
	list *utils.ListItem
}

var tbkManager *TBKManager

func Manager() *TBKManager {
	if nil == tbkManager {
		tbkManager = &TBKManager{}
	}

	return tbkManager
}

func (m *TBKManager) Add(t *TBK) error {
	if nil == m.list {
		m.list = utils.NewListItem(t)
	} else {
		m.list.Append(utils.NewListItem(t))
	}
	return nil
}

func (m *TBKManager) GetTBKByApiKey(apikey string) *TBK {
	var ret *TBK
	if nil != m.list {
		item, _ := m.list.Find(func(i interface{}) bool {
			a := i.(*TBK)
			if a.APIKey == apikey {
				return true
			}
			return false
		})
		if item != nil {
			ret = item.Data.(*TBK)
		}
	}
	return ret
}

func (m *TBKManager) GetTBKByAccount(account string) *TBK {
	var ret *TBK
	if nil != m.list {
		item, _ := m.list.Find(func(i interface{}) bool {
			a := i.(*TBK)
			if a.ID == account {
				return true
			}
			return false
		})
		if item != nil {
			ret = item.Data.(*TBK)
		}
	}
	return ret
}
